# 1、获取图像的灰度值
# 2、将其写入MIF文件
from chinese_font import label
import numpy as np
from PIL import Image

# WIDTH=8;
# DEPTH=3000;

# ADDRESS_RADIX=UNS;
# DATA_RADIX=HEX;
# 屏幕大小是480 * 800 ASCII 字体是 16 * 8，汉字是 16 * 16 
# 打开 MIF 文件并写入头部信息
with open('outer.mif', 'w') as mif_file:
    mif_file.write(f"DEPTH = 2400;\n")  # 存储器深度，即存储的数据数量：256
    mif_file.write("WIDTH = 8;\n")  # 每个数据的位宽：128位
    # 虽然像素值以十进制形式表示，但位宽决定了每个像素值在存储时所占用的二进制位数。位宽的选择通常与灰度级别的数量有关，而不仅仅是数字的表示形式。
    mif_file.write("ADDRESS_RADIX = UNS;\n")  # 地址的进制：UNS
    mif_file.write("DATA_RADIX = UNS;\n")  # 数据的进制：10进制DEC 无符号10进制UNS 2进制BIN 8进制OCT 16进制HEX
    mif_file.write("CONTENT\n")
    mif_file.write("BEGIN\n")

    addr = 128
    cnt = 0 
    tmp_data = ""
    # 遍历图像的每个像素，并将其写入 MIF 文件
    mif_file.write(f"    [0..79] : 150;\n")        

    for addr in range(1, 27):
        mif_file.write(f"    {addr*80} : 151;\n")
        mif_file.write(f"    [{addr*80 + 1}..{addr*80 + 80 - 2}] : 0;\n")
        mif_file.write(f"    {addr*80 + 80 - 1} : 151;\n")
    
    mif_file.write(f"    [{27*80}..{27*80 + 79}] : 150;\n")        
        
    
    # 设置栏
    mif_file.write(f"    2240 : 151;\n") # |
    mif_file.write(f"    2241 : 151;\n") # |
    mif_file.write(f"    2242 : 128;\n") # 发
    mif_file.write(f"    2243 : 129;\n") # 发
    mif_file.write(f"    2244 : 130;\n") # 送
    mif_file.write(f"    2245 : 131;\n") # 送
    mif_file.write(f"    2246 : 151;\n") # |
    mif_file.write(f"    2247 : 0;\n") #
    mif_file.write(f"    2248 : 0;\n") # ascII
    mif_file.write(f"    2249 : 0;\n") # 
    mif_file.write(f"    2250 : 151;\n") # |
    mif_file.write(f"    2251 : 132;\n") # 波
    mif_file.write(f"    2252 : 133;\n") # 波
    mif_file.write(f"    2253 : 134;\n") # 特
    mif_file.write(f"    2254 : 135;\n") # 特
    mif_file.write(f"    2255 : 136;\n") # 率
    mif_file.write(f"    2256 : 137;\n") # 率
    mif_file.write(f"    2257 : 151;\n") # |
    mif_file.write(f"    [2258..2265] : 0;\n") # 8个空白
    mif_file.write(f"    2266 : 151;\n") # |
    mif_file.write(f"    2267 : 138;\n") # 校
    mif_file.write(f"    2268 : 139;\n") # 校
    mif_file.write(f"    2269 : 140;\n") # 验
    mif_file.write(f"    2270 : 141;\n") # 验
    mif_file.write(f"    2271 : 142;\n") # 位
    mif_file.write(f"    2272 : 143;\n") # 位
    mif_file.write(f"    2273 : 151;\n") # |
    mif_file.write(f"    2274 : 0;\n") # 
    mif_file.write(f"    2275 : 0;\n") # 
    mif_file.write(f"    2276 : 0;\n") # 
    mif_file.write(f"    2277 : 0;\n") # 
    mif_file.write(f"    2278 : 151;\n") # |
    mif_file.write(f"    [2279..2319] : 0;\n") # |
    
    mif_file.write(f"    [2320..2399] : 150;\n")
    
    
    # 写入 MIF 文件的结尾
    mif_file.write("END;\n")
